package edu.API基础String.String;

public class String类构造方法 {
    public static void main(String[] args) {
        //public String():  创建一个空白字符串对象，不含有任何内容
        String s1=new String();
        System.out.println(s1);

        //public String(char[] args):  根据字符数组的内容来创建字符串对象
        char[] chs={'a','b','c'};
        String s2=new String(chs);
        System.out.println(s2);

        //public String(String original):根据传入的字符串内容来创建字符串对象
        String s3=new String("123");
        System.out.println(s3);

        //直接创建
        String s4="abc";

        //对比

        //双引号
        String s5="abc";   //双引号创建时，系统会检查该字符串是否在字符串常量池中存在，不存在就创建，存在就直接复用，字符创常量池在堆内存中
        String s6="abc";  //双引号创建，只要内容相同，无论创建几次，JVM（虚拟机）只会创建一个String对象，s5==s6

        //new构造方法
       /*
       char[] chs={'a','b','c'};  也会在堆内存中开空间
       String s3=new String(chs);
       String s4=new String(chs);
       sout（s3==s4）  -->false,内存地址不同
       根据new创建的字符串对象，每次new都会申请一个内存空间，虽然内容相同，但是地址值不同
       */
    }

}
